//退出当前运行的Node.jsy应用程序进程
//↓退出之前执行 废话= =
/*process.on('exit',function(){
  console.log('Node.js进程被推出');
});
process.exit(0);*/

/* kill方法
用于向进程发送一个信号

SIGINT 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出，用于通知前台进程组终止进程。

SIGTERM 程序结束(terminate)信号, 该信号可以被阻塞和处理。通常用来要求程序自己正常退出,shell命令kill缺省产生这个信号
*/
// process.kill(pid,[signal]);
/*
pid是一个整数，用于指定需要接收信号的进程ID
signal 发送的信号，默认为 SIGTERM
*/

//信号事件
/*process.stdin.resume();
process.on('SIGINT',function(){
  console.log('接收到SIGINT信号');
});*/


//返回当前程序(本文件)的运行时间(持续时间 从开始到结束)
setTimeout(() => {

  console.log(process.uptime()); //1.063

}, 1000);
console.log(process.uptime()); //0.062

/* 测试一个代码段的运行时间
测试一个代码段的运行时间,返回两个时间，第一个单位是秒，第二个单位是纳秒

这种方式是根据任意取的一个过去的时间点，距离现在的时间来获取一个精确的时间戳对象：[秒, 纳秒]
这种方式和系统时间无关，因此不会受到系统时钟漂移的影响，用来计算时间差的时候就不会有BUG了。

故在结束时 需要将第一次调用 process.hrtime() 返回的time 作为参数 传给最终调用的 process.hrtime() 来计算差值
*/
let fs = require('fs');
const path = require('path');
let time = process.hrtime();
console.log(time);
let data = fs.readFileSync(path.join(__dirname, 'content.txt'));
let diff = process.hrtime(time);
console.log(diff); // [seconds, nanoseconds] ()
console.log(`读文件操作耗费%d秒`,diff[0]); //读文件操作耗费的0秒
console.log(`读文件操作耗费%d nanoseconds`,diff[1]); //读文件操作耗费的581100 nanoseconds
